草庐IT

Java TLS-PSK 套接字

全部标签

java - getLocalAddress 在连接的套接字上返回 127.0.0.1

我正在编写一个客户端Java程序,它需要知道用于连接(通过tcp)到远程服务器的本地IP地址。问题是调用Socket.getLocalAddress().getHostAddress()错误地返回(仅在少数情况下)127.0.0.1,而在大多数情况下/PC上它工作正常...这是使用的代码片段:publicstaticStringgetLocalIPAddress(StringserverIP,intport)throwsUnknownHostException{System.out.println("ExecutinggetLocalIPAddresson"+serverIP+":"+

c - 我如何拒绝数据流过已建立的 TCP 连接,但套接字连接应保持有效状态。

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭9年前。Improvethisquestion我需要一个已建立的TCP连接给出一些错误的情况,例如sendto()失败或recieve()但套接字连接应保持在原位。这样我想检查我的应用程序中是否有任何数据发送和接收失败一两次,然后它会如何表现。最初,我通过对这些值进行硬编码来测试它,但现在我想在实时场景中查看它。提前致谢。

在客户端终止连接进程后,C++ 服务器不会关闭 TCP 套接字连接

我遇到了一个对我来说很奇怪的问题我有一个c++应用程序(服务器)部署在centos和客户端(也在centos上运行),有一个程序会通过定时器连接服务器,当连接数达到1k时,定时器停止.我可以运行以下命令来检测服务器上的连接:netstat-nat|grep-i“端口”|grep“已建立”目前它运行良好。但是,在我从客户端杀死进程后,服务器上仍然存在大量处于ESTABLISHEDSTATUS的连接。甚至我关闭了客户端机器,第二天早上10多个小时后,我仍然能够在服务器上看到很多处于ESTABLISHED状态的事件连接。即使我杀死进程时可能会丢失数据包,因此它无法通知服务器TCP连接已关闭,

python - 使用root,打开其他进程套接字并使用python获取tcp_info?

我正在尝试制作一个TCP性能监控工具,我想提取的主要值是tcpi_rttfromtcp_info对于进程内套接字,这可以像python中的getsockopt(socket.SOL_TCP,socket.TCP_INFO)一样获得但是外部进程呢?对于TCP连接,在带有root的python下,我尝试os.open(/proc/XXXX/fd/4)套接字inode但失败OSError:[Errno6]Nosuchdevice或地址:。此方法仅适用于常规fd或stdin/stdout。是否有任何通用的方法可以在Linux上查看其他进程的tcp_info? 最佳答

sockets - 从半开套接字读取

我正在尝试连接到ApplePushNotificationService,该服务使用基于受TLS(或SSL)保护的TCP的简单二进制协议(protocol)。该协议(protocol)表明,当遇到错误时(大约有10种明确定义的错误条件)APNS将发回错误响应,然后关闭连接。这导致套接字半关闭,因为远程对等方关闭了套接字。我可以看到它正常关闭,因为APNS使用tcpdump发送FIN和RST。在所有错误情况中,我可以在发送前处理大部分错误并进行验证。失败的情况是当通知发送到无效的设备token时,由于token可能格式错误,因此无法轻松处理。token是不透明的32字节值,由APNS提供

windows - 当内核收到数据包或套接字读取后,Windows TCP 堆栈是否发送 ACK?

我知道在大多数基于UNIX的系统中,内核一收到数据包就会发送ACK。但想知道Windows操作系统中的行为是否也相同。(Windows7)。 最佳答案 该行为在所有操作系统中都是相同的。它由RFC793定义。当(或者,在延迟ACK的情况下,之后)数据被TCP接收时执行ACK。它与应用程序何时读取无关。 关于windows-当内核收到数据包或套接字读取后,WindowsTCP堆栈是否发送ACK?,我们在StackOverflow上找到一个类似的问题: https

java - 缺少来自套接字的数据

我正在尝试编写Java代码以从流式HTTP连接接收数据(我想调试我在针对spring-websocket服务器运行SockjsXHR-streaming时遇到的问题)。我使用一些非常简单的代码来连接:URIuri=//TheserverSocketsocket=newSocket();socket.connect(newInetSocketAddress(uri.getHost(),uri.getPort()));OutputStreamos=socket.getOutputStream();PrintWriterpw=newPrintWriter(os);intid=newRando

c++ - 通过在 2 个服务器之间相互发送套接字来共享套接字 (WINSOCK)

我正在尝试编写一个分布式服务器系统(目前由服务器1="main"和服务器2="replacement"组成)。不要介意一些肮脏的方法,只是实现一个分布式服务器的基本功能。在同一台机器。主服务器发送与替换服务器和连接到它的客户端建立连接。现在我想要实现的目标是:主服务器应该将连接客户端的套接字发送到替换服务器,这样万一主服务器不能再工作(超时或其他),替换服务器可以与客户端一起工作并发送/recv与他们。我从主服务器发送到替换服务器的套接字是我通过ClientSocket=::accept(ListenSocket,NULL,NULL);获得的套接字,其中ClientSocket是一个S

c# - 通过 TCP 套接字丢失一个字节

所以我想做一个聊天室。我使用TCP套接字发送所有信息。但是当我发送一个字节数组时,接收套接字的缓冲区丢失了最后一个字节。它是0因为字节数组是255大,所以剩下的字节是0。我已经通过Debug模式检查,在发送数据包时,数组是正确的。但是在套接字完成接收的断点处,它丢失了最后一个字节。为什么会发生这种情况?我看到另一个线程说你必须停止线程直到套接字完成接收,但我正在使用AsyncCallBack,据我所知,当套接字完成接收时调用它。每个数据包中的第一个字节也应该是字符串大小(以考虑额外的空字节)。数据包类:publicclassPacket{publicbyte[]Buffer;publi

Java 通过套接字进行多文件传输

好的,尝试通过套接字传输指定目录的文件,从arraylist中删除目录对象,因此只剩下文件,并通过同一个套接字1接1地传输它们。此处的数组列表仅包含文件,没有目录。下面分别是客户端和服务器的接收和发送代码。代码运行良好,没有错误,除了所有数据都被写入第一个文件。随后的文件在服务器文件夹中创建,但它们是0字节。任何输入将不胜感激。这是接收文件的服务器代码publicvoidreceive(){try{DataInputStreamdis=newDataInputStream(newBufferedInputStream(socket.getInputStream()));DataOutp